package com.logos.musicframe.service;

import com.logos.musicframe.entity.SongsLiked;
import com.logos.musicframe.resp.SongsResp;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 点赞行为记录表(SongsLiked)表服务接口
 *
 * @author rose
 * @since 2025-06-02 22:58:24
 */
@Service
public interface SongsLikedService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    SongsLiked queryById(Long id);

    /**
     * 新增数据
     *
     * @param songsLiked 实例对象
     * @return 实例对象
     */
    SongsLiked insert(SongsLiked songsLiked);

    /**
     * 修改数据
     *
     * @param songsLiked 实例对象
     * @return 实例对象
     */
    SongsLiked update(SongsLiked songsLiked);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Long id);

    /**
     *  获取用户点赞的歌单
     * @param userId
     * @return
     */
    List<SongsResp> getUserLikedSongs(Integer userId);

    /**
     * 点赞歌曲
     * @param userId
     * @param songId
     * @return
     */
    boolean likeSong(Integer userId, Integer songId);

    /**
     * 取消点赞歌曲
     * @param userId
     * @param songId
     * @return
     */
    boolean unlikeSong(Integer userId, Integer songId);

    /**
     * 查询一首歌是否被该用户点过赞
     */
    boolean isLiked(Integer userId, Integer songId);
}
